<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
    <meta name="viewport" content="width=device-width">
    <title>寄生组合式继承</title>
</head>
<body>
    <h1>寄生组合式继承</h1>
</body>
<script type="text/javascript">
    
    function Parent (name) {
        this.name = name;
        this.colors = ['red', 'blue', 'green'];
    }
    
    Parent.prototype.getName = function () {
        console.log(this.name)
    }
    
    function Child (name, age) {
        Parent.call(this, name);
        this.age = age;
    }
    // 关键的三步
    // var F = function () {};
    
    // F.prototype = Parent.prototype;
    
    // Child.prototype = new F();

    Child.prototype = Object.create(Parent.prototype)
    
    
    var child1 = new Child('kevin', '18');
    
    console.log(child1);

    console.log(Child.prototype)

    // 这种方式的高效率体现它只调用了一次Parent构造函数，并且因此避免了在 Parent.prototype 上面创建不必要的、多余的属性。与此同时，原型链还能保持不变；因此，还能够正常使用 instanceof 和 isPrototypeOf。开发人员普遍认为寄生组合式继承是引用类型最理想的继承范式。

</script>
</html>